package com.qm.dao;

import java.util.ArrayList;

import org.apache.ibatis.annotations.Param;

import com.qm.model.Classes;
import com.qm.model.Course;
import com.qm.model.Topic;

public interface AdminCourseDAO {
	/**
	 * 班级信息分页显示
	 * 
	 * @param page
	 * @param count
	 * @return
	 */
	public ArrayList<Classes> classesInformationPaging(
			@Param(value = "page") int page, @Param(value = "count") int count);

	/**
	 * 班级信息条数
	 * 
	 * @return
	 */
	public int classesInformationCount();
	 /**
	    * 新增班级信息
	    * @param c
	    * @return
	    */
	public int insertClass(Classes c);
	/**
	 * 通过班级ID删除该班级
	 * @param cid
	 * @return
	 */
	public int deleteClassByCid(@Param(value="cid") int cid);
	/**
	 * 查询所有课程的名字
	 * @return
	 */
	public  ArrayList<Course> selectCourseName();
	/**
	 * 课程信息分页显示
	 * @return
	 */
	public  ArrayList<Course>  selectCoursePaging(@Param(value = "page") int page, @Param(value = "count") int count);
	/**
	 * 统计课程数目
	 * @return
	 */
	public int courseCount();
	/**
	 * 根据课程代码来查询班级
	 * @return
	 */
	public ArrayList<Classes> selectClasses(@Param(value = "cocourseCode") int cocourseCode);
	/**
	 * 根据课程代码来查询课程信息
	 * @param cocourseCode
	 * @return
	 */
	public Course selectCourseBycocourseCode(@Param(value="cocourseCode") int cocourseCode);
	/**
	 * 根据课程代码来修改课程信息
	 * @param c
	 * @return
	 */
	public int updateCourseBYcocourseCode(Course c);
	/**
	 * 新增课程信息
	 * @param c
	 * @return
	 */
	public int insertCourse(Course c);
	/**
	 * 删除课程信息
	 * @param cocourseCode
	 * @return
	 */
	public int deleteCourseByCocourseCode(@Param(value="cocourseCode") int cocourseCode);
	
	/**
	 * 根据课程代码来显示班级名称
	 * @param cocourseCode
	 * @param cid
	 * @param page
	 * @param count
	 * @return
	 */
	public ArrayList<Classes> selectClassesByCourse
	(@Param(value="cocourseCode")int cocourseCode,@Param(value="page")int page,@Param(value="count")int count);
	/**
	 * 根据课程代码来显示本属于本课程的班级
	 * @param cocourseCode
	 * @return
	 */
	public int classesCountByCourse(@Param(value="cocourseCode")int cocourseCode);
	/**
	 * 修改班级信息
	 * @param c
	 * @return
	 */
	public int updateClassByCid(Classes c);
	
	/**
	 * 通过cid 来查询班级信息
	 * @param cid
	 * @return
	 */
	public Classes selectClassByCid(@Param(value="cid") int cid);
	/**
	 * 插入一条题目的数据，为导入题目信息做准备
	 * @param p
	 * @return
	 */
	public int  importTopics(Topic p);
	/**
	 * 查询某课程的题目信息
	 * @param cocourseCode
	 * @param page
	 * @param count
	 * @return
	 */
	public ArrayList<Topic> selectTopicByCourse(@Param (value="cocourseCode")int cocourseCode,@Param(value="page")int page,@Param(value="count")int count);
	
	/**
	 * 查询某课程的题目总数
	 * @param cocourseCode
	 * @return
	 */
	public int selectTopicCountByCourse(@Param (value="cocourseCode")int cocourseCode);
}
